#ifndef STRING_HEADER
#define STRING_HEADER

// this header needs
#include <stdio.h>
#include "../CHAR_ARR.h"

// for now it is set to that size
#define MAX_STR_SIZE 4096

// these functions are affected by set_ch_arr_funcs()
extern void set_ch_arr_funcs(char_enc type);

// functions
umax get_str_byte_length_safe(void * str, umax mx_size, char_enc enc);
umax get_str_char_length_safe(void * str, umax mx_size, char_enc enc);
umax get_str_byte_length(void * str, char_enc enc);
umax get_str_char_length(void * str, char_enc enc);
void print_str(void * str, char_enc enc);
void * cp_str(void * str, char_enc enc, void * dest);
bool comp_strs(void * str1, char_enc enc, void * str2);

#include "STRING.c"

#endif // STRING_HEADER
